Different types of cache data have different reliability (i.e., fault tolerance), storage overhead (i.e., storage efficiency) and recovery cost requirements. Existing cache systems utilize a single erasure code (e.g., Reed Solomon) or replication technique (e.g., three-way replication) to optimize either reliability and/or storage overhead. Existing single erasure-coded cache systems trade recovery costs for storage overhead and/or reliability.